草庐IT

if 和 keyword 比较

全部标签

windows - 使用批处理拆分和比较字符串

我基本上需要从netdom查询fsmo中获取此输出:SchemaMasterserver1.domain.localDomainNamingMasterserver1.domain.localPDCserver1.domain.localRIDPoolManagerserver1.domain.localInfrastructureMasterserver1.domain.local并检查我正在运行我的脚本的服务器实际上是PDC持有者。所以基本上逻辑是:获取当前主机名并存储在变量中netdomqueryfsmo|寻找“PDC”并存储在变量中将实际主机名与查询中的主机名进行比较上面的变量

windows - IF/Else 和 Goto 问题

我一直在努力尝试将这个批处理脚本放在一起来检查一个进程(它可以是任何进程)。计算它正在运行的实例数并保存该计数的输出。如果它没有运行(计数为0)那么它很好,但如果它正在运行(1或更大)但在这种情况下低于说“5”,让它回显一个语句。每次我尝试这样做时,我要么得到'else'isnotrecognizedasaninternalorexternalcommand,operableprogramorbatchfile要么当脚本到达goto:problem时,它似乎完全忽略了else语句。@echoofffor/f%%gin('tasklist/FI"IMAGENAMEeqchrome.exe

windows - 如何比较本地文件与 FTP 服务器上文件的年龄,如果远程副本在 PowerShell 中较新则如何下载

我正在编写一个PowerShell脚本来帮助我为工作设置新PC。这有望被不止我一个人使用,所以我正在努力考虑所有事情。我在我们的FTP服务器上保存了离线安装程序(java、flash、reader等),如果本地副本尚未保存在创建的Apps目录中,则脚本会下载该脚本。随着新版本程序的发布,FTP服务器上的文件将定期更新。我希望脚本可以选择检查安装程序的较新版本,以防有人喜欢随身携带本地副本而忘记不时检查服务器。它还需要在Windows7中工作,而不需要导入额外的模块,除非有一种简单的方法可以同时在多台PC上执行此操作。我知道导入命令,但根据我的经验,我需要先将模块文件复制到PC上的多个位

windows - 根据批处理文件中的 IF ELSE 条件设置变量不同的值

我的目标是在x64机器上将%PF%变量设置为C:\ProgramFiles(x86)\MSBuild\,在x86机器上设置为C:\ProgramFiles\MSBuild\。我可以很容易地实现这种方式IFDEFINEDProgramFiles(x86)SETPF=%ProgramFiles(x86)%\MSBuild\IFNOTDEFINEDProgramFiles(x86)SETPF=%ProgramFiles%\MSBuild\但我想在单个IFELSE语句中完成此操作。那个IFDEFINEDProgramFiles(x86)(SETPF=%ProgramFiles(x86)%\MS

windows - 我如何在某些 'if' 语句中使用 Windows 版本标题来确定要检查哪些 Windows 更新?

我正在编写一个令人遗憾的脚本,旨在基本上从Windows7、8和8.1中消除Windows10的任何痕迹。几乎是this的脚本版本程序。脚本即将完成(我认为),但似乎我的某些if语句中的逻辑即使变量不正确也会执行。这里是要记住的部分,为了清楚起见,在脚本的前面添加了创建$Caption变量的行:$Caption=(Get-WmiObjectwin32_operatingsystem).captionif($Caption='Windows8.1Professional'){if(Get-Hotfix-idKB3044374){Wusa/uninstall/kb:3044374/quie

windows - 命令不在 .BAT if 语句中执行

我有一个批处理文件,它将检查CPU架构(32位或64位),并相应地执行命令。它将找到特定的文件夹并执行某些.exe文件。我的问题是,如果我在if语句中有一个语句,例如。'echoSometext',它会显示正常,这意味着对架构的检查没有问题。但是只要我的If语句中有多个命令,批处理文件就会立即退出。到目前为止我的代码:@echooffSET"ARCH=x64"IFNOTEXIST"%SystemRoot%\SysWOW64\cmd.exe"(IFNOTDEFINEDPROCESSOR_ARCHITEW6432SET"ARCH=x86")IF"%ARCH%"=="x64"(cd\cdPr

windows - 用于比较两个文件列表并删除两个列表中显示的文件的命令行

在Windows7中,我有一个包含以下文件的文件夹1:a.txtb.txtc.txt还有另一个文件夹2包含以下文件:b.txtc.txtd.txt我想使用命令行从文件夹2中删除文件b.txt和c.txt,它们出现在两个列表中。我了解如何使用for/f生成文件列表。我不知道如何在for/f中执行另一个循环以便删除文件。 最佳答案 我不确定您的意思是要从两个文件夹中删除文件b.txt和c.txt,还是只删除一个。以下批处理文件将从folder2中删除它们。@echooffsetlocalsetfolder1=name_of_your_f

windows - Powershell If 语句不接受多个 OR 条件

我有一个处理大量DNSA记录的powershell脚本,我正在尝试过滤掉默认记录(即“@”、“ForestDNSZones”等)。只是用一个简单的if语句来尝试这个似乎不起作用。代码示例:$zoneARecords=Get-DnsServerResourceRecord-ComputerName$DNSserver-ZoneName$zoneName|?{$_.RecordType-eq"A"}foreach($recordin$zoneARecords){$hostName=$record.HostNameif($hostName-ine"gc"-or"DomainDnsZones"

windows - 批处理文件,字符串变量比较,if语句

我试图用一个简单的字符串来比较一个文件的日志,但是它没有进入if比较。我在echo语句中将“connectfailed”作为我的第二个令牌,但没有得到if语句的任何结果。@echooffremstartcmd.exefor/f"tokens=2delims=:"%%nIN(C:\Users\rohit.bagjani\Desktop\result\telnetresult.txt)DO(SETstr1="Connectfailed"echo%%nif\i%str1%==%%necho"true")echo.pause 最佳答案 第一

c - Detecting if stdout is a console with MS Visual compilation, mingw64提供的console

我维护一个生成二进制数据的命令行实用程序。请求时,数据可以重定向到stdout。这在stdout被重定向到管道或文件时有效,但当stdout是一个控制台时,情况就不太一样了,因为它会垃圾控制台。为了保护用户免受此类错误,程序必须检测stdout是否是控制台,并在是时退出。现在,这并不是什么新鲜事,快速浏览一下Internet就会发现多种解决方案。主要缺点是没有“通用”方法,VisualStudio需要自己的风格。我用于Visual的控制台检测器有一个缺陷:它没有检测到stdout是一个控制台当控制台由mingw提供时,我认为这意味着它是mintty。这里是相关的代码部分:#ifdefi